package world;

import java.awt.Color;

public class Species 
{
    //Name of species
    private String name;
    //base starting life of all members of this species
    private int maxLife;
    //Attack power of all members of this species
    private int attackPower;
    //Amount of health regenerated when members of this species take no action
    private int regenRate;
    //Hunger value when the animal is full
    private int maxHunger;
    //How far distant nodes will be taken into account in decision making
    private int sightRad;
    //how long a pregnancy lasts.
    private int gestation;
    //true for carnivore, false for herbivore
    private boolean diet;
    //How far this species can walk in one turn
    private int movementRate;
    //Hunger consumed when this animal mates
    private int mateHunger;
    //Hunger consumed when this animal fights
    private int fightHunger;
    //Hunger consumed when this animal walks
    private int moveHunger;
    //Hunger consumed when this animal takes no action
    private int waitHunger;
    //Generates AI for the initial generation
    private float[][] generateAI;
    //The number of animals of this species that have been spawned in total
    private int index;
    //The color members of this species have on the board
    private Color color;
    //Amount of food contained in a carcass left behind by this species
    private int carcassFood;
    private int maxGen;
    private int mercyAmt;

    public Species()
    {
        
    }
    public Species(String name,int life, int attack, int regen, int hunger, int sight,
            int gestation, boolean diet, int movement, int mate,
            int fight, int move, int wait, int index, Color col, int mercy)
    {
        setName(name);
        setMaxLife(life);
        setAttackPower(attack);
        setRegenRate(regen);
        setMaxHunger(hunger);
        setSightRad(sight);
        setGestation(gestation);
        setDiet(diet);
        setMovementRate(movement);
        setMateHunger(mate);
        setFightHunger(fight);
        setMoveHunger(move);
        setWaitHunger(wait);
        setColor(col);
        setMercyAmt(mercy);
    }

    /**
     * @return the maxLife
     */
    public int getMaxLife() {
        return maxLife;
    }

    /**
     * @param maxLife the maxLife to set
     */
    public void setMaxLife(int maxLife) {
        this.maxLife = maxLife;
    }

    /**
     * @return the attackPower
     */
    public int getAttackPower() {
        return attackPower;
    }

    /**
     * @param attackPower the attackPower to set
     */
    public void setAttackPower(int attackPower) {
        this.attackPower = attackPower;
    }

    /**
     * @return the regenRate
     */
    public int getRegenRate() {
        return regenRate;
    }

    /**
     * @param regenRate the regenRate to set
     */
    public void setRegenRate(int regenRate) {
        this.regenRate = regenRate;
    }

    /**
     * @return the maxHunger
     */
    public int getMaxHunger() {
        return maxHunger;
    }

    /**
     * @param maxHunger the maxHunger to set
     */
    public void setMaxHunger(int maxHunger) {
        this.maxHunger = maxHunger;
    }

    /**
     * @return the sightRad
     */
    public int getSightRad() {
        return sightRad;
    }

    /**
     * @param sightRad the sightRad to set
     */
    public void setSightRad(int sightRad) {
        this.sightRad = sightRad;
    }

    /**
     * @return the gestation
     */
    public int getGestation() {
        return gestation;
    }

    /**
     * @param gestation the gestation to set
     */
    public void setGestation(int gestation) {
        this.gestation = gestation;
    }

    /**
     * @return the diet
     */
    public boolean isDiet() {
        return diet;
    }

    /**
     * @param diet the diet to set
     */
    public void setDiet(boolean diet) {
        this.diet = diet;
    }

    /**
     * @return the movementRate
     */
    public int getMovementRate() {
        return movementRate;
    }

    /**
     * @param movementRate the movementRate to set
     */
    public void setMovementRate(int movementRate) {
        this.movementRate = movementRate;
    }

    /**
     * @return the mateHunger
     */
    public int getMateHunger() {
        return mateHunger;
    }

    /**
     * @param mateHunger the mateHunger to set
     */
    public void setMateHunger(int mateHunger) {
        this.mateHunger = mateHunger;
    }

    /**
     * @return the fightHunger
     */
    public int getFightHunger() {
        return fightHunger;
    }

    /**
     * @param fightHunger the fightHunger to set
     */
    public void setFightHunger(int fightHunger) {
        this.fightHunger = fightHunger;
    }

    /**
     * @return the moveHunger
     */
    public int getMoveHunger() {
        return moveHunger;
    }

    /**
     * @param moveHunger the moveHunger to set
     */
    public void setMoveHunger(int moveHunger) {
        this.moveHunger = moveHunger;
    }

    /**
     * @return the waitHunger
     */
    public int getWaitHunger() {
        return waitHunger;
    }

    /**
     * @param waitHunger the waitHunger to set
     */
    public void setWaitHunger(int waitHunger) {
        this.waitHunger = waitHunger;
    }

    /**
     * @return the generateAI
     */
    public float[][] getGenerateAI() {
        return generateAI;
    }

    /**
     * @param generateAI the generateAI to set
     */
    public void setGenerateAI(float[][] generateAI) {
        this.generateAI = generateAI;
    }

    /**
     * @return the index
     */
    public int getIndex() {
        return index;
    }

    /**
     * @param index the index to set
     */
    public void setIndex(int index) {
        this.index = index;
    }

    /**
     * @return the color
     */
    public Color getColor() {
        return color;
    }

    /**
     * @param color the color to set
     */
    public void setColor(Color color) {
        this.color = color;
    }

    /**
     * @return the carcassFood
     */
    public int getCarcassFood() {
        return carcassFood;
    }

    /**
     * @param carcassFood the carcassFood to set
     */
    public void setCarcassFood(int carcassFood) {
        this.carcassFood = carcassFood;
    }

    /**
     * @return the name
     */
    public String getName() {
        return name;
    }

    /**
     * @param name the name to set
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * @return the maxGen
     */
    public int getMaxGen() {
        return maxGen;
    }

    /**
     * @param maxGen the maxGen to set
     */
    public void setMaxGen(int maxGen) {
        this.maxGen = maxGen;
    }

    /**
     * @return the mercyAmt
     */
    public int getMercyAmt() {
        return mercyAmt;
    }

    /**
     * @param mercyAmt the mercyAmt to set
     */
    public void setMercyAmt(int mercyAmt) {
        this.mercyAmt = mercyAmt;
    }
}
